The present invention relates generally to a migration and consolidation of computer-based applications from one system to another, and more particularly to an aid for identification, selection, provisioning, and configuration of software and hardware prior to the migration and consolidation of computer-based applications from a source platform to a heterogeneous target platform.
A computer-based application refers to software or hardware application operating in or on a computer (e.g., desktop, laptop, netbook, workstation, mainframe, etc.). A computer-based application typically addresses some business, scientific, or individual need. Examples of applications include, but not limited to: spreadsheets, electronic mail clients and servers, accounting software, loan processing software, inventory management software, etc. A source application refers to an application to be migrated and/or consolidated. A source platform refers to a sum of dependencies that the source application has upon both hardware and software. A dependency of a first application/component on a second application/component means that the first application/component needs the second application/component to perform its functions. A source platform component refers to an individual dependency that the source application has upon hardware, software and/or attributes of the hardware and software including, but not being limited to: physical location(s) of the hardware and/or software. A (final) target application refers to an application that exists after the migration and/or consolidation. A (final) target platform refers to a sum of dependencies that the final target application has upon hardware, software, and/or attributes including, but not being limited to: physical location(s) of the hardware and/or software. An affinity refers to similarity between different software or hardware components. For example the Linux and AIX® operating systems share affinity in that both are variations of UNIX and in that applications and scripts written for one may, with little change, be capable of running on the other. A web page, http://www-03.ibm.com/systems/power/software/aix/linux.html, describes the AIX's affinity with Linux in detail. Compatibility refers to a capability of orderly, efficient integration and operation with other elements in a system with no modification or conversion required. Compatibility might best be shown by an example of its opposite: incompatibility. For example, IBM® Rational® ClearCase® attempts to create a Versioned Object Base from a client at a lower version than the server (for example a 2003.06.00 client storing a VOB on a 7.0 server) results in an error.
Since the 1980s, it has been a common practice for an organization to increase IT capacity or new capabilities simply by adding low-cost servers because the initial capital expense of adding the low-cost servers is relatively low. However, a proliferation (i.e., a rapid increase) of servers can cause a high ownership cost in terms of a power consumption, floor space, etc. A proliferation of servers also leads to increased costs and risks in server management due to the complexity of supporting a myriad of different hardware and software configurations. Advances in a virtualization technology (e.g., IBM System z and z/VM, IBM PowerVM, VMware, Java® Virtual Machine) and mainframe hardware have now made a consolidation of applications onto a fewer number of centralized servers very attractive. However, a process of planning and performing such a migration is time-consuming, costly, and prone to an error. A risk is also involved in the migration process due to a high degree of complexity of applications deployed on server devices. For example, consider a large number of distributed applications (e.g., 1 million applications) that are deployed on a many server devices. One server device could host an application on a middleware product to meet performance and high availability requirements. That application may be distributed over several server devices. This distributed application may require a database which is deployed on another server device. Messaging components to support information exchange with other internal or external applications may require a set of server devices and be deployed to several application servers (e.g., IBM® WebSphere® Application Server). A consolidation of this set of servers may require an in-depth knowledge of configurations of the set of servers and an insight into how to best plan and run a migration of source applications to the final target platform.
Often, in order to achieve savings of the migration and/or consolidation, it may be necessary to change the underlying hardware and operating system on which the final target applications are deployed. In these cases traditional virtualization techniques fail to provide a solution to “lift-and-shift” (i.e., move or transfer) source applications from one platform to another. Traditionally, a user is required to manually replicate an application eco-system, i.e. all prerequisite software, hardware, and settings onto a final target environment (i.e., a final target platform). Due to the limitation of traditional virtualization techniques and manual replication, an application migration and consolidation becomes an expensive, tedious, and error-prone manual process.
Thus, it is desirable to provide a tool assisting a user in performing a planning, configuration and provisioning of the target platform on a virtual machine (e.g., Java® Runtime environment, IBM z/VM, IBM PowerVM) based on an understanding of the source platform.